In Rust, Profili di rilascio sono configurazioni predefinite che permettono agli sviluppatori di controllare il compromesso tra tempo di compilazione e prestazioni in esecuzione. Modificando queste impostazioni, puoi personalizzare il comportamento del compilatore per adattarlo al tuo flusso di lavoro corrente, sia esso iterazione rapida o distribuzione in produzione.
1. Profili Dev vs. Release
Cargo ha due profili principali: dev (utilizzato da cargo build) e release (utilizzato da cargo build --release). Il profilo dev è ottimizzato per una compilazione veloce ma produce un codice più lento in esecuzione, mentre il profilo release dedica più tempo all'ottimizzazione del codice macchina per massimizzare l'efficienza.
2. Impostazione dell'opt-level
L'impostazione opt-level è il principale parametro di controllo delle prestazioni. Va da 0 a 3:
- 0: Nessuna ottimizzazione. Compilazioni veloci, codice lento. (Predefinito per dev)
- 1-2: Ottimizzazioni intermedie.
- 3: Ottimizzazioni aggressive. Compilazioni lente, codice più veloce. (Predefinito per release)
- "s" o "z": Ottimizza la dimensione del file binario invece della velocità.
| Profilo | Livello di ottimizzazione predefinito | Obiettivo |
|---|---|---|
| dev | 0 | Iterazione rapida |
| release | 3 | Velocità in produzione |
3. Personalizzazione dei profili
Puoi sovrascrivere questi valori predefiniti nel tuo Cargo.toml. È utile quando il codice non ottimizzato è troppo lento per essere testato (ad esempio, in simulazioni complesse), ma una compilazione completa di rilascio richiede troppo tempo.
opt-level = 1 # Codice più veloce rispetto al livello 0, ancora veloce da compilare